Negation in der Logikprogrammierung

Dozent Dr. J. Hudelmaier
Sprechstunde n.V.
Zeit Do, 14­16
Umfang 2+2
Beginn 17.4.97
Ort siehe Aushang
Prüfungsfach Theoretische Informatik

Beschreibung:
Logikprogramme können sowohl als Rechenprozeduren als auch als logische Formeln gelesen werden, und für gewòhnliche Logikprogramme stimmen die beiden Lesarten überein. Bekanntlich lassen sich aber auch in prozeduralen Programmiersprachen logische Konstrukte (z. B. if then else) auf natürliche Weise einführen. Wenn man diese nützlichen Konstrukte jedoch wieder auf die Logikprogrammierung übertragen will (z. B. als negation as failure), so geraten sie in Konflikt mit der logischen Lesart der Programme selbst. Hat man etwa ein einfaches Programm mit einem einzigen Faktum

null(0).

und einer einzigen Regel

nichtnull(X) <= ¬ null(X).


so würde die prozedurale Lesart der Negation liefern, daß nichtnull(1)$, gilt, weil null(1)$ vom Programm nicht bestätigt wird. Logisch ist nichtnull(1) aus dem Programm aber keineswegs ableitbar. indent In der Veranstaltung werden verschiedene Ansätze besprochen werden, diese Diskrepanz zu heilen.

Zurück zur Übersicht